From: Florian Müllner Date: Thu, 6 Oct 2022 12:30:20 +0000 (+0200) Subject: inhibitShortcutsDialog: Don't override resource X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~435^2^2~28 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=8590e3350145b3c652d3977d72fe0da7f1d8885c;p=gnome-shell.git inhibitShortcutsDialog: Don't override resource PermissionStore's Set() method takes a complete permission table, so when setting an app's permission, we are implicitly removing all previously set entries for other apps. Switch to the SetPermission() method which sets the permission for a single app. https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/5937 Part-of: --- diff --git a/data/dbus-interfaces/org.freedesktop.impl.portal.PermissionStore.xml b/data/dbus-interfaces/org.freedesktop.impl.portal.PermissionStore.xml index 75fbc468a..55d3fc30c 100644 --- a/data/dbus-interfaces/org.freedesktop.impl.portal.PermissionStore.xml +++ b/data/dbus-interfaces/org.freedesktop.impl.portal.PermissionStore.xml @@ -13,6 +13,13 @@ + + + + + + + diff --git a/js/ui/inhibitShortcutsDialog.js b/js/ui/inhibitShortcutsDialog.js index f37c1f605..b6f1330b2 100644 --- a/js/ui/inhibitShortcutsDialog.js +++ b/js/ui/inhibitShortcutsDialog.js @@ -1,5 +1,5 @@ /* exported InhibitShortcutsDialog */ -const { Clutter, Gio, GLib, GObject, Gtk, Meta, Pango, Shell, St } = imports.gi; +const {Clutter, Gio, GObject, Gtk, Meta, Pango, Shell, St} = imports.gi; const Dialog = imports.ui.dialog; const ModalDialog = imports.ui.modalDialog; @@ -57,16 +57,12 @@ var InhibitShortcutsDialog = GObject.registerClass({ if (!this._shouldUsePermStore() || this._permStore == null) return; - let permissions = {}; - permissions[this._app.get_id()] = [grant]; - let data = GLib.Variant.new('av', {}); - try { - await this._permStore.SetAsync(APP_PERMISSIONS_TABLE, + await this._permStore.SetPermissionAsync(APP_PERMISSIONS_TABLE, true, APP_PERMISSIONS_ID, - permissions, - data); + this._app.get_id(), + [grant]); } catch (error) { log(error.message); }